home *** CD-ROM | disk | FTP | other *** search
- ;================================================
- ; fade routine v2.01 (bugfix by me!!!!)
- ; a0 -> to pallet to fade to
- ; a1 -> to pallet to fade from
- ; a3 -> colour list in copper
- ; d7 = Number of colours
- ;================================================
-
- fade
- swap d7
- move #14,d0
- bright
- moveq #2,d1
- nibble
- swap d7
- move d7,d2
- swap d7
- col
- move d2,d3
- lsl #1,d3
- move 0(a0,d3.w),d4
- move 0(a1,d3.w),d5
- cmp #2,d1
- bne.b not2
-
- and #$f00,d4
- and #$f00,d5
- cmp d5,d4
- beq.b doneadd
- blo.b sub2
- add #$100,0(a1,d3.w)
- bra.b doneadd
- sub2
- sub #$100,0(a1,d3.w)
- bra.b doneadd
- not2
- cmp #1,d1
- bne.b not1
- and #$f0,d4
- and #$f0,d5
- cmp d5,d4
- beq.b doneadd
- blo.b sub1
- add #$10,0(a1,d3.w)
- bra.b doneadd
- sub1
- sub #$10,0(a1,d3.w)
- bra.b doneadd
- not1
- cmp #0,d1
- bne.b doneadd
- and #$f,d4
- and #$f,d5
- cmp d5,d4
- beq.b doneadd
- blo.b sub0
- addq #$1,0(a1,d3.w)
- bra.b doneadd
- sub0
- subq #$1,0(a1,d3.w)
- doneadd
- dbra d2,col
- ; change immediate value in d6 the higher it is the slower the fade
- moveq #1,d6
- bsr.b pause
-
- move.l a1,a2
- swap d7
- move.w d7,d2
- swap d7
- move.l a3,-(sp)
-
- copy3 move.w (a2)+,2(a3)
- addq.l #4,a3
- dbra d2,copy3
-
- move.l (sp)+,a3
-
- dbra d1,nibble
-
- dbra d0,bright
- rts
-
-
- ;================================================
- ; pause
- ; d6.w = pause time in 1/50 sec
- ;================================================
-
- pause
- move.w vbl,d7
- waitframe
- cmp vbl,d7
- beq.b waitframe
-
- dbra d6,pause
- rts
-
-
-
-
- **************************************************
- ; in interupt routine put:-
-
- ; eor.w #$FFFF,vbl
-
- ; in variables put:-
-
- ;vbl dc.w 0
-
- **************************************************
-
-